代码在examples/c10k.php
中,本测试启动10
个子进程,发起长连接到Swoole
的TCP Server.
由于单台机器的原因,ip_local_port_range
的范围是32000-60000
。
运行到28000
个长连接时,由于local port
不够用,无法再继续连接。
并发测试中使用4
台客户端机器同时连接服务器,每台机器与服务器建立2.8W
个TCP
连接。TCP Server
共维持了11.2W
长连接。
Swoole
使用epoll
作为事件轮询,可维持大量TCP
连接。只要操作系统的内存足够,就一直可以增加维持的TCP
长连接。
swoole_server
每个连接所占用的内存为220
字节,使用数据缓存,如EOF_CHECK
/LENGTH_CHECK
后可能会增加到每连接8K
。